#include "choixfilmparliste.h"
#include "ui_choixfilmparliste.h"
#include "QMessageBox"
#include "httpimage.h"

choixFilmParListe::choixFilmParListe(QString rech_orig,QList<QStringList> info_film, QWidget *parent) :
    QDialog(parent),
    ui(new Ui::choixFilmParListe)
{
    ui->setupUi(this);
    remplir(rech_orig,info_film);
    //connect(this->ui->edtRecherche,SIGNAL(editingFinished()),this,SLOT(SurRefresh()));
    connect(this->ui->btnRefresh,SIGNAL(clicked()),this,SLOT(SurRefresh()));
    connect(this->ui->griFilm,SIGNAL(cellDoubleClicked(int,int)),this,SLOT(SurDoubleClic(int,int)));
    connect(this->ui->btn_ok,SIGNAL(clicked()),this,SLOT(SurValidation()));
    connect(this->ui->btn_annul,SIGNAL(clicked()),this,SLOT(SurRejet()));
//    connect(this,SIGNAL(rejected()),this,SLOT(SurRejet()));
    /*
      0 = annulation
      -1 = demande de refresh
      autre = code du film choisi
      */
}

choixFilmParListe::~choixFilmParListe()
{
    delete ui;
}

void choixFilmParListe::remplir(QString rech_orig,QList<QStringList> info_film)
{
    this->ui->edtRecherche->setText(rech_orig);
    QTableWidget* table = this->ui->griFilm;
    table->clear();
    //colonne : code;titre;année;acteurs;image
    table->setColumnCount(5);
    table->setRowCount(info_film.count()-1);
    QStringList val;
    int li = 0;
    //val = info_film.at(1);
    foreach (val, info_film)
    {
        //QStringList val_coupe = val.split(";");
        /*code*/
        QTableWidgetItem* itCode = new QTableWidgetItem(val.at(0));
        table->setItem(li,0,itCode);
        /*Image*/
//        QIcon ico;// = QWebSettings::iconFromUrl(QUrl("http://images.allocine.fr/medias/nmedia/18/71/26/38/19129363.jpg"));
//        QTableWidgetItem* itImage = new QTableWidgetItem("");
//        itImage->setIcon(ico);
//        table->setItem(li,1,itImage);
        if(val.at(4)!="")
        {
            QTableWidgetItem* itImage = new QTableWidgetItem("");
            table->setItem(li,1,itImage);
            httpImage* im_gri = new httpImage();
//            im_gri->imageDansGrille(table,li,1,"http://images.allocine.fr/medias/nmedia/18/71/26/38/19129363.jpg");
            im_gri->imageDansGrille(table,li,1,val.at(4));
            connect(table,SIGNAL(destroyed()),im_gri,SLOT(abandonne()));
            //im_gri->imageDansGrille(table,li,1,"http://qt.nokia.com/logo.png");
        }
        /*Titre*/
        QTableWidgetItem* itTitre = new QTableWidgetItem(val.at(1));
        table->setItem(li,2,itTitre);
        /*Année*/
        QTableWidgetItem* itAnnee = new QTableWidgetItem(val.at(2));
        table->setItem(li,3,itAnnee);
        /*Acteurs*/
        QTableWidgetItem* itActeurs = new QTableWidgetItem(val.at(3));
        table->setItem(li,4,itActeurs);
#warning a faire
        li++;
    }
    table->hideColumn(0);
    table->resizeColumnsToContents();

}

int choixFilmParListe::executer()
{
    if(ui->griFilm->rowCount() == 1)
        return ui->griFilm->item(0,0)->text().toInt();
    return exec();
}

QString choixFilmParListe::ValEdtRecherche()
{
    return this->ui->edtRecherche->text();
}

void choixFilmParListe::SurRefresh()
{
    done(-1);
}

void choixFilmParListe::SurDoubleClic(int li, int co)
{
    QTableWidgetItem* it = this->ui->griFilm->item(li,0);
    bool ok;
    int val =it->text().toInt(&ok);
    if(ok)
        done(val);
    else
        done(0);
}

void choixFilmParListe::SurValidation()
{
    int li = this->ui->griFilm->currentRow();
    if(li >=0)
        SurDoubleClic(li,0);
    else
        QMessageBox::information(NULL,"Erreur","On t'a dit de sélectionner une ligne");
}

void choixFilmParListe::SurRejet()
{
    done(0);
}
